﻿
namespace SistemaLogistica.Windows.Panels
{
    using System;
    using System.Reflection;
    using System.Windows.Forms;
    using EDOSwit.Controls.Helpers;
    using EDOSwit.Security;
    using SistemaLogistica.Business.Entities;
    using SistemaLogistica.Business.Logic;
    using SistemaLogistica.Windows.Helpers;

    public partial class FrmLogin : Form
    {
        public FrmLogin()
        {
            InitializeComponent();
            LoadEmpresa();
        }

        private void FrmLogin_Load(object sender, EventArgs e)
        {
            if (!DesignMode)
            {
                this.login.Focus();
            }
        }

        private void login_IniciarSesion(object sender, LoginEventArgs e)
        {
            Usuario usuario = null;
            try
            {
                usuario = EmpleadoManager.Instancia.ObtenerPorCredencial(e.Username, e.Password);
            }
            catch (Exception ex)
            {
                Mensaje.ShowMessageAlert(this.ParentForm, Constantes.TituloMensaje, ex.Message);
            }

            if (usuario != null)
            {
                Empresa.Usuario = usuario;
                DialogResult = DialogResult.OK;
            }
            else
            {
                Mensaje.ShowMessageAlert(this.ParentForm, Constantes.TituloMensaje, "No existe Usuario con los datos ingresados.");
            }
        }

        private void login_CerrarVentana(object sender, EventArgs e)
        {
            DialogResult = DialogResult.Cancel;
        }

        private void LoadEmpresa()
        {
            try
            {
                EmpresaManager.Instancia.Cargar("EmpresaInfo.xml");

                this.Text = Empresa.RazonSocial + this.Text;
                Version version = Assembly.GetExecutingAssembly().GetName().Version;
                this.login.Version = version.ToString();
                this.login.NombreProducto = Application.ProductName;
            }
            catch (Exception ex)
            {
                Mensaje.ShowMessageAlert(this.ParentForm, Constantes.TituloMensaje, ex.Message);
            }
        }
    }
}
